The present invention generally relates to encoding a plurality of information signals using a joint computing power and in particular to controlling a plurality of encoding means for encoding a plurality of information signals using a joint computing power.
Regarding the different ways of encoding and/or compressing information signals, like, e.g., audio or video signals, a difference may be made between lossless encoding on the one hand and lossy encoding on the other hand. Lossless encoding technologies reduce the number of bits needed for representing the information signal by a redundancy reduction. Lossy encoding technologies, on the contrary, are alternatively or additionally based on an irrelevance reduction, according to which signal information of the information signal may be omitted which, although it leads to an interference with regard to the original information signal in decoding and/or reconstruction, is, compared to the compression rate, usually comparatively low or possibly even not perceivable for human perception, e.g. hearing or sight.
Lossy compression is usually an object of multimedia signal compression. It is the object of the multimedia signal compression to represent an original signal, e.g., an audio or a video signal having a certain bit rate R minimizing the introduced interference and/or the introduced distortion D. This is referred to as rate/distortion optimization. By increasing R, it is typically possible to reduce D. This compromise may, for example, be controlled by the quantization step size Q. Minimizing D for a given target bit rate R has already frequently been the subject of studies, wherein reference is, for example, made to A. Ortega, A., Ramchandran, K., “Rate-distortion methods for image and video compression”, Signal Processing Magazine, IEEE, Vol. 15, No. 6, November 1998, pages 23-50, which deals with video compression.
In RD optimization it is to be considered that the RD performance in operation, i.e. the RD performance for a certain encoder implementation is typically signal-dependent and changes over time. RD optimization here is a continuous process and not a one-time design process in the development of the encoder.
As an extension of the classical RD optimization task, it is possible to consider several programs, e.g. P, together, such as, e.g., several programs p with p=1 . . . P, which share a common target bit rate and/or overall bit rate R and are encoded together. A first approach in such a joint encoding might be to distribute the bit rate uniformly among the programs, i.e. to constantly encode each program with a fixed bit rate R(p)=R/P=constant. It is advantageous, however, to dynamically distribute the bit rate among the signals, depending on the signal and time-dependent RD performance in each program.
It is to be assumed, for example, that each program is divided into time segments s with s=1 . . . S and with S being the number of considered segments, wherein each segment takes a fixed time T, e.g., T=2 seconds. In this case, the operational RD performance is given by D(R,p,s) and the overall distortion in the programs may be minimized by changing the bit allocation between the programs in a dynamic way from segment to segment, i.e. by setting R(p,s). If these RD data are known, a plurality of optimization technologies are available which may be used. The possible R/D gain results from the fact that within each segment programs usually exist which are “easy” to be encoded and others which are “difficult” to be encoded. Consequently, a reserve bit rate may be allocated to the program which profits most from it. No gain would then be obtainable if all programs showed the same RD performance. As this is very improbable from a statistical point of view, however, it is advantageous to multiplex programs and, in doing so, dynamically allocate the encoding rate. This is referred to as a statistical multiplex and is, for example, described in the following publications: Balakrishnen et al., “Benefits of statistical multiplexing in multi-program broadcasting”, in Proceedings of Int. Broadcasting Convention, September 1997, pp. 560-565, M. W. Garret et al., “Joint source/channel coding of statistically multiplexed real-time services on packet networks”, IEEE/ACM Transactions on Networking, Vol. 1, No. 1, pp. 71-80, 1993, and U.S. Pat. No. 6,195,388.
Apart from the encoding rate R and the distortion D a further important parameter exists for a practical implementation, i.e. the complexity C, which is measured, for example, in CPU cycles or million instructions per second (MIPS). Typically, the RD performance may be improved by adding more complexity to the encoder and/or the decoder. Consequently, with the same bit rate the distortion may be reduced if more processing power is available. This performance may be observed in many generations of codecs and/or coding schemes over time, e.g., using the H.261, H.263 and H.264 encoding schemes in case of video encoding. The improvement of the RD performance with complexity increases may, however, also be observed within a certain implementation of an encoding scheme when certain encoding tools are activated or deactivated or a search depth is decreased or the like. For video encoding it is possible, for example, to prevent the complex motion estimation and motion compensation used for encoding the predicted frames (P frames) or bidirectional predicted frames (B frames) or to only use intra-encoded frames (I frames). This will typically deteriorate the RD performance but also significantly reduce the complexity. Such a change of the encoding complexity and/or such changes in encoding strategy may be executed at the encoder mainly in a way which is according to standard, i.e. necessitates no changes in the decoder.
Software encoders now utilize the above-mentioned complexity considerations, as they comprise an optimization control in order to control the CD compromise. For example, a controller may show five optimization levels from “fastest” to “best quality” to enable a user to perform a manual setting. Within an encoder even a less granular, maybe even continuous control is possible by varying different encoding parameters, such as, e.g., the frame type, the search space, etc. Like in the case of RD optimization, the operational CD performance is typically signal-dependent and changes over time.
The minimization of D for a given complexity limit Cmax is discussed, for example, in Kwon et al., “Performance and computational complexity optimization in configurable hybrid video coding systems”, IEEE Transactions on Circuits and Systems for Video Technology, pp. 31-42, Vol. 16, No. 1, 2006, Ping Li, Veervalli, Kassim, “Design and implementation of parallel video encoding strategies using divisable load analysis”, IEEE Transactions on Circuits and Systems for Video Technology, pp. 1098-1112, Vol 15, No. 7CDVT-1, 2005, and in a special session with the title “Energy-Aware Video Communication” at the Picture Coding Symposium, 2006, Beijing, China.
One topic in the realization of encoders is also load balancing. Load balancing is a technology to distribute work/load between many computers, processes, plates or other resources and/or equipment to obtain an optimum resource utilization and/or calculation time period. In general, this is described, for example, in Yung-Temg Wang, Morris, R. J. T., “Load Sharing in Distributed Systems”, Computers, IEEE Transactions on, Vol. C-34, No. 3, March 1985, pages 204-217. In U.S. Pat. No. 6,748,019, for example, load balancing between two sequential members of a hybrid encoding scheme is described, i.e. the motion compensation part on the one hand and the residual signal encoding part on the other hand, to prevent in this way the occurrence of idle times in one of the two members.
Back to the encoding of several information signals, it would now be desirable to have a possibility of being able to execute this joint encoding more efficiently.